#ifndef _KEY_H
	#define _KEY_H
	
#include "stm32f10x.h"
#include "rtc.h"

extern u32 TimingDelay;
extern u8 wait_key_flag;
extern u16 now_pre;
extern u16 now_pulse;
extern u16 led_count;

#define led1 GPIO_Pin_8
#define led2 GPIO_Pin_9
#define led3 GPIO_Pin_10
#define led4 GPIO_Pin_11
#define led5 GPIO_Pin_12
#define led6 GPIO_Pin_13
#define led7 GPIO_Pin_14
#define led8 GPIO_Pin_15

#define RB1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
#define RB2 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)
#define RB3 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)
#define RB4 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)

#define key1 1
#define key2 2
#define key3 3
#define key4 4
#define no_key 0

#define state_lift_empty 0x00
#define state_lift_get_cmd 0x01
#define state_lift_door_close 0x11
#define state_lift_door_open 0x10
#define state_lift_arrive_aim 0x30
#define state_lift_running_up 0x20
#define state_lift_running_down 0x21

void delay_ms(u32 nTime);
void led_init(void);
void led_ctrl(u16 ledx,u8 status);
void key_init(void);
u8 key_scan(void);
void deal_key(void);
u8 get_next_floor(void);
u8 get_lift_running_derection(void);
void deal_arrive(void);
void waterfall_light(u8 status);
void deal_state(void);

#endif